
#ifndef __CHART_H_
#define __CHART_H_

#include <vtkVersion.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkChartXY.h>
#include <vtkTable.h>
#include <vtkPlot.h>
#include <vtkFloatArray.h>
#include <vtkContextView.h>
#include <vtkContextScene.h>
#include <vtkPen.h>

class Chart
{
	protected:

		int _dim;
		int _num_rows;
		double *_increments;
		double **_limits;

		vtkSmartPointer<vtkTable> _table;

		void _initialize_increments();
		void _add_domain_to_table();

	public:

		Chart(int dim, double **limits, int num_slices = 500);
		virtual ~Chart();

		virtual vtkSmartPointer<vtkChartXY> BuildChart() = 0;
};

#endif
